package Liczbens;
class LiczbaException extends Exception
{
	private static final long serialVersionUID = 1L;

		LiczbaException(String s) {
                super(s);
        }
};


public class Liczba
{
    private int n;
    
    
    public String zapis(int podstawa) throws LiczbaException
    {
        if(podstawa < 2 || podstawa > 17){
            throw new LiczbaException("Wrong base!");
        }
            
        String out = "";
        String ans = "";
        int liczba = n;
        
        while(liczba > 0){
            int res = liczba%podstawa;
            liczba = liczba/podstawa;
            
            out = out + Character.forDigit(res,podstawa);
        }
        
        out.toUpperCase();
        
        for(int i = out.length()-1 ; i >= 0 ; i --){
            ans = ans + out.charAt(i);
        }
        
        return ans;
    }
    
    
    Liczba(){
        this.n = 0;
    }
    
    Liczba(int n){
        this.n = n;
    }
    
    Liczba(String n,int podstawa) throws LiczbaException
    {
        if(podstawa > 17){
            this.n = 0;
            throw new LiczbaException("Wrong base!");
        }
        
        for(int i = 0 ; i < n.length() ; i ++)
        {
            char ni = n.charAt(i);
            if(!(ni >= '0' && ni <= '9') && !(ni >= 'a' && ni <= 'g') && !(ni >= 'A' && ni <= 'G')){
                this.n = 0;
                throw new LiczbaException("Wrong number!");
            }
        }
        
        int out = 0;
        
        for(int i = 0 ; i < n.length() ; i ++)
        {
            int charValue = Character.getNumericValue(n.charAt(i));
            
            if(charValue >= podstawa){
                this.n = 0;
                throw new LiczbaException("Wrong number!");
            }
            
            out = out*podstawa + charValue;
        }
        
        this.n = out;
    }
}